Network applications typically refers to computer applications on a first computer that interact with other computer applications running on a second computer. Network applications typically operate in a client-server paradigm or a peer-to-peer paradigm. Generally, one skilled in the art can easily adapt a network application to use either the client-server paradigm or the peer-to-peer paradigm. Thus, for clarity and conciseness, only client-server network applications are described herein.
FIG. 1 shows a typical layout for several computers. Specifically, FIG. 1 includes a server computer 110 with server software 115, a local area network 120, a client computer 140 with custom client software 145, a wide area network 150, and a client computer 160 with generic client software 165.
Server computer 110 is coupled to client computer 140 through local area network 120. Common types of local area networks include Ethernet, token ring, and FDDI. Local area network 120 is coupled to wide area network 150, which can be for example the internet. Typically, a router (not shown) is used to couple local area network 120 to wide area network 150. Client computer 160 is coupled to wide area network 150, typically through a modem (not shown) or another local area network (not shown). The data bandwidth of local area network 120 is typically between 10 and 100 megabits per seconds. However, the wide area network connection between client computer 160 and server computer 110 may be much slower such as 56 kilobits per second.
Server computer 110 typically contains data records, such as electronic mail (email) messages, data files, and electronic forum messages (e.g., newsgroup postings), which are accessible to users on client computers. Generally, server software 115 runs on server computer 110 to allow client software to access the desired data records. On local computers, i.e., computers on the same local area network such as client computer 140, custom client software, such as custom client software 145, is installed to communicate and transfer the desired data records with server software 115. For example, if the data records are email, server software 115 is a mail server such as Microsoft Exchange™ and custom client software 145 is a mail client such as Microsoft Outlook™. Because of the fast connection between local computers provided by local area network 120 and the customized features of custom client software 145, a user of client computer 140 is provided many features and benefits as described below.
Non-local client computers do not necessarily have custom client software 145. However, most computers are now configured with generic client software such as web browser (e.g., Microsoft Internet Explorer™ or Netscape Navigator™). Generic client software communicates with server software using industry standard protocols such as hypertext markup language (HTML) and JavaScript™. Server software can control generic client software to simulate some of the features of custom client software.
FIG. 2 is a simplified display window 200 from custom client software 145. Display window 200 includes various control areas such as control area 210 and 220. Control areas typically include control mechanisms such as links and buttons to control the functions of custom client software 145. For example, if custom client software 145 is an email client, control areas 220 and 230 may include control mechanisms for reading email, composing new email, forwarding an email, or responding to an email. Display window 200 also includes a data list area 240 and a data record display area 250. Data list area 240 includes data identifiers 240-1, 240-2, . . . 240-7. The actual number of data identifiers may be much larger than seven. Typically, if more there are more data identifiers than can be shown on in data list area 240, data list area 240 has some mechanism, such as a scroll bar, to selectively show groups of data identifier. Data identifiers differ depending on the specific application. For example, if custom client software 145 is an email client, each data identifier indicates an email message. For email software, data identifier 240-1 may include information such as the sender, date, and subject of a corresponding email. Furthermore, data identifier 240-1 may contain additional information that is not displayed. Data list area 240 also includes a current data identifier marker 245. Current data identifier marker 245 indicates the data identifier, which corresponds to the current data record being displayed in data record display area 250. Some embodiments of data list area 240 also include status indicators (not shown) about the corresponding data record. For example, in an email application, status indicators may indicate whether the email is read, unread, or whether a reply to the email has already been sent.
Data record display area 250 displays the current data record corresponding to the current data identifier. In FIG. 2, data record display area 250 displays data record 250-2, which corresponds to data identifier 240-2, which is the current data identifier as indicated by current data identifier marker 245. In addition, data record display area 250 includes control buttons such as next button 251 and previous button 252. Next button 251 causes the data identifier following the current data identifier to become the current data identifier. In addition, the data record following the current data record becomes the current data record. Furthermore, the new current data record is displayed in data record display area 250 and current data identifier marker 245 is updated to point to the new current data identifier. For example, in FIG. 2 clicking next button 251 causes data identifier 240-3 to become the current data identifier; data record 250-3 (not shown) is displayed in data record display area 250, and current data identifier marker 245 is moved to point to data identifier 240-3.
Conversely, previous button 252 causes the data identifier preceding the current data identifier to become the current data identifier. In addition, the data record preceding the current data record becomes the current data record. Furthermore, the new current data record is displayed in data record display area 250 and current data identifier marker 245 is updated to point to the new current data identifier. For example, in FIG. 2 clicking previous button 252 causes data identifier 240-1 to become the current data identifier; data record 250-1 (not shown) is displayed in data record display area 250, and current data identifier marker 245 is moved to point to data identifier 240-1.
Many computer users require access to data records from server software 115 from different computers. For example, an employee may need to access data records from server software 115 while traveling. For example, in FIG. 1, client computer 160 may be located in a different city than server computer 110 and client computer 140. Access to server computer 110 from client computer 160 is generally limited by the bandwidth of wide area network 150. Furthermore, the specific software such as custom client software 145 may not be available on client computer 160. Therefore, server software 115 is often configured to support use of generic client software 165. In general, generic client software 165 contacts server software 115 and receives computer instructions, which configures generic client software 165 to operate with server software 115 using industry standard protocols such as HTTP and JavaScript.
However, several issues cause difficulties in replicating the features of custom client software 145 using generic client software 165. One issue is the slow speed of wide area network 150 compared to local area network 120. For example, in most implementations of custom client software 145, all the data identifiers are transmitted to custom client software 145. Thus, custom client software 145 allows a user to easily scan through portions of the data identifiers to locate a desired data record. However, the latency caused by transferring a large list of data identifiers using wide area network 150 may be unacceptable.
Another issue is due to the static nature of generic client software 165. Specifically, generic client software 165 generally requests specific data pages, such as a web page, from server software 115 using a uniform resource locator (URL). Server software 115 processes the request from generic client software 165 and sends a data page for generic client software to display. The data pages may include links (embedded URLs), which can be selected to request another data page. Thus, for example some web based email systems display a subset of the list of email message headers as links, which can be selected to display a corresponding email message in place of the email message headers. However, conventional configurations of generic client software 165 can not replicate the dual display areas typical of custom client software 145. Hence, there is a need for a method for configuring generic client software to provide the features of custom client software using industry standard protocols.